﻿using System;

namespace HalconDotNet
{
	// Token: 0x02000085 RID: 133
	internal class HDevOutputParamVector : HDevOutputParam
	{
		// Token: 0x06001DD7 RID: 7639 RVA: 0x000B4E30 File Offset: 0x000B3030
		public HDevOutputParamVector(HVector vector, HTuple index, bool global) : base(global)
		{
			this.mVector = vector;
			this.mIndex = index.Clone();
		}

		// Token: 0x06001DD8 RID: 7640 RVA: 0x000B4E4C File Offset: 0x000B304C
		public override void StoreIconicParamObject(HObject obj)
		{
			HObjectVector hobjectVector = (HObjectVector)this.mVector;
			for (int i = 0; i < this.mIndex.Length; i++)
			{
				hobjectVector = hobjectVector[this.mIndex[i]];
			}
			hobjectVector.O.TransferOwnership(obj);
		}

		// Token: 0x06001DD9 RID: 7641 RVA: 0x000B4EA0 File Offset: 0x000B30A0
		public override void StoreCtrlParamTuple(HTuple tuple)
		{
			HTupleVector htupleVector = (HTupleVector)this.mVector;
			for (int i = 0; i < this.mIndex.Length; i++)
			{
				htupleVector = htupleVector[this.mIndex[i]];
			}
			htupleVector.T.TransferOwnership(tuple);
		}

		// Token: 0x06001DDA RID: 7642 RVA: 0x000B4EF4 File Offset: 0x000B30F4
		private void StoreParamVector(HVector vector)
		{
			HVector hvector = this.mVector;
			for (int i = 0; i < this.mIndex.Length; i++)
			{
				hvector = hvector[this.mIndex[i]];
			}
			hvector.TransferOwnership(vector);
		}

		// Token: 0x06001DDB RID: 7643 RVA: 0x000B4F3D File Offset: 0x000B313D
		public override void StoreIconicParamVector(HObjectVector vector)
		{
			this.StoreParamVector(vector);
		}

		// Token: 0x06001DDC RID: 7644 RVA: 0x000B4F3D File Offset: 0x000B313D
		public override void StoreCtrlParamVector(HTupleVector vector)
		{
			this.StoreParamVector(vector);
		}

		// Token: 0x0400114D RID: 4429
		protected HVector mVector;

		// Token: 0x0400114E RID: 4430
		protected HTuple mIndex;
	}
}
